package com.itheima.d2_buffered_stream;
import java.io.*;
/*
    目标：掌握字节缓冲流的作用。

    原理：字节缓冲输入流自带了8KB缓冲池；字节缓冲输出流也自带了8KB缓冲池。
    如果自带了8kb的读字节能力，那bis.read(bytes)的bytes读字节能力是啥？（它的作用不也是多读吗）？->增加读缓冲池的字节的能力到内存中，然后可以打印呀啥的
    write(bytes,0,d)那肯定就是写更多的字节到缓冲流中。

    构造器
    public BufferedInputStream(InputStream is)	把低级的字节输入流包装成一个高级的缓冲字节输入流，从而提高读数据的性能
    public BufferedOutputStream(OutputStream os)	把低级的字节输出流包装成一个高级的缓冲字节输出流，从而提高写数据的性能
 */

/**
 *  如果自带了8kb的读字节能力，那bis.read(bytes)的bytes读字节能力是啥？（它的作用不也是多读吗）？->增加读缓冲池的字节的能力到内存中，然后可以打印呀啥的
 *     write(bytes,0,d)那肯定就是写更多的字节到缓冲流中。
 */
public class BufferedInputStreamTest1 {
    public static void main(String[] args) throws Exception {
       FileInputStream fis=new FileInputStream("aaa.txt");
       FileOutputStream fos=new FileOutputStream("ccc.txt");

       BufferedInputStream bis=new BufferedInputStream(fis);
       BufferedOutputStream bos=new BufferedOutputStream(fos);

       int d;
       byte[] bytes=new byte[3];
       while((d=bis.read(bytes))!=-1){
           bos.write(bytes,0,d);
           System.out.println(new String(bytes,0,d));
       }

       bis.close();
       bos.close();
    }
}
